#ifndef ABSTRACTMOLECULEVISITOR_HEADER_VIZMF_PROJECT
#define ABSTRACTMOLECULEVISITOR_HEADER_VIZMF_PROJECT

#include "src/core/workspace/molecule/molecule.h"

class MolecularVisitor {
public:
  virtual ~MolecularVisitor(){}
  virtual void drawAtom(Vector3 pos, Atom::int_type element, Atom::atom_type_type attype, bool selected = false) = 0;
  virtual void drawBond(Vector3 from, Vector3 to, Atom::int_type elem_from, Atom::int_type elem_to,
                        Atom::atom_type_type attyp_from, Atom::atom_type_type attyp_to,
                        Molecule::bond_type::int_type bond_order, bool selected = false) = 0;
};

#endif // ABSTRACTMOLECULEVISITOR_HEADER_VIZMF_PROJECT
